package org.example.medical.Mapper;

import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;
import org.example.medical.entity.CostRecord;

import java.util.List;

@Mapper
public interface CostRecordMapper {
    // 查询费用记录分页数据（按患者姓名、就诊类型、科室、支付方式）
    List<CostRecord> selectByPageAndFilters(
            @Param("patientName") String patientName,
            @Param("visitType") String visitType,
            @Param("department") String department,
            @Param("paymentMethod") String paymentMethod,
            @Param("recordTime") String recordTime,
            @Param("offset") int offset,
            @Param("size") int size
    );

    // 新增费用记录
    void insertCostRecord(CostRecord costRecord);

    // 更新费用记录
    void updateCostRecord(CostRecord costRecord);

    // 软删除费用记录
    void softDeleteCostRecord(@Param("costId") Long costId);

    // 批量软删除费用记录
    void batchSoftDeleteCostRecords(@Param("costIds") List<Long> costIds);
    List<Long> getCostIdsByRecordId(Long recordId);
}